package com.pkk.cloud.support.admin.entity.resource;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "penguin_sys_resource")
public class PenguinSysResource implements Serializable {

  private static final long serialVersionUID = -2482300714744584164L;
  /**
   * 资源菜单表
   */
  @TableId(value = "id", type = IdType.AUTO)
  private Long id;

  /**
   * 资源名称
   */
  @TableField(value = "resource_name")
  private String resourceName;

  /**
   * 父id
   */
  @TableField(value = "resource_pid")
  private Long resourcePid;

  /**
   * 前端唯一key
   */
  @TableField(value = "resource_code")
  private String resourceCode;

  /**
   * 菜单路径
   */
  @TableField(value = "resource_url")
  private String resourceUrl;


  /**
   * 一级菜单路由重定向路径地址
   */
  @TableField(value = "redirect_uri")
  private String redirectUri;

  /**
   * 图片路径
   */
  @TableField(value = "class_icon")
  private String classIcon;

  /**
   * 类型 0-分类 1-菜单 2-按钮
   */
  @TableField(value = "resource_type")
  private Integer resourceType;

  /**
   * 菜单级别
   */
  @TableField(value = "resource_level")
  private Integer resourceLevel;

  /**
   * 菜单排序
   */
  @TableField(value = "resource_sort")
  private Integer resourceSort;

  /**
   * 资源所属客户端id(penguin_oauth_client的客户端client_id)
   */
  @TableField(value = "own_client_id")
  private Long ownClientId;

  /**
   * 是否显示1显示0不显示
   */
  @TableField(value = "is_show")
  private Boolean isShow;

  /**
   * 是否删除1删除0未删除
   */
  @TableField(value = "is_deleted")
  private Boolean isDeleted;

  /**
   * 创建人
   */
  @TableField(value = "create_name")
  private String createName;

  /**
   * 创建时间
   */
  @TableField(value = "create_time")
  private Date createTime;

  /**
   * 修改人
   */
  @TableField(value = "update_name")
  private String updateName;

  /**
   * 修改时间
   */
  @TableField(value = "update_time")
  private Date updateTime;

  /**
   * 备注
   */
  @TableField(value = "remark")
  private String remark;


}